Calculational Derivation of Pointer Algorithms from Tree Operations
نویسنده
چکیده
We describe an approach to the derivation of correct algorithms on tree-based pointer structures. The approach is based on enriching trees in a way that allows us to model commonly-used pointer manipulations on tree structures. We provide rules which allow recursive functions on trees to be transformed into imperative algorithms on enriched trees. In addition, we provide rules which allow algorithms on enriched trees to be mechanically transformed into eecient pointer algorithms. All transformations are correctness-preserving. A key point of our approach is that we avoid aliasing through the way in which trees are enriched and through some simple syntactic restrictions on transformable programs.
منابع مشابه
Transformational Construction of Correct Pointer Algorithms
This paper shows how to use the transformation of Paterson and Hewitt to improve the memory and operations used in a pointer algorithm. That transformation scheme normally is only of theoretical interest because of the inefficient performance of the transformed function. However we present a method how it can be used to decrease the amount of selective updates in memory while preserving the ori...
متن کاملA Highly Concurrent Priority Queue Based on the B - link
We present a highly concurrent priority queue algorithm based on the Blink tree, which is a B +-tree in which every node has a pointer to its right sibling. The algorithm is built on the concurrent Blink tree algorithms proposed by Lehman and Yao 15] and Sagiv 19]. Since the priority queue is based on highly concurrent search structure algorithms, a large number of insert operations can execute...
متن کاملOn Rotations and the Generation of Binary Trees
The rotation graph, G n , has vertex set consisting of all binary trees with n nodes. Two vertices are connected by an edge if a single rotation will transform one tree into the other. We provide a simpler proof of a result of Lucas 7] that G n contains a Hamilton path. Our proof deals directly with the pointer representation of the binary tree. This proof provides the basis of an algorithm for...
متن کاملA Degradable B-Tree with Periodic Data Reorganization
The classic B-tree data structure due to Lehman and Yao [8] allows a higher level of concurrency than traditional Btrees [4] (called B*-trees by Lehman and Yao) for reading, updating, deletion and insertion concurrent operations by introducing cross-linked pointers for nodes at the same level. This unique design, henceforth referred to as the LY algorithm, allows a read operation, which is fun...
متن کاملPointer Program Derivation Using Coq: Graphs and Schorr-Waite Algorithm
We present a specification, a derivation and total correctness proofs of operations for bi-functional graphs implemented with pointers, including the Schorr-Waite algorithm. This one marks such a graph with an economical depth-first strategy. Our approach is purely algebraic and functional, from a simple graph specification to the simulation of a tailrecursive imperative program, then to a true...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید
ثبت ناماگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید
ورودعنوان ژورنال:
- Sci. Comput. Program.
دوره 33 شماره
صفحات -
تاریخ انتشار 1999